home *** CD-ROM | disk | FTP | other *** search
- /* MIXSD.H
- *
- * Miscellaneous helper functions common to all mixing sound devices.
- * Technically these functions should be part of each Sound Device's internal
- * code, but are here to save some space and help maintenance.
- *
- * $Id: mixsd.h,v 1.2 1997/01/16 18:41:59 pekangas Exp $
- *
- * Copyright 1996,1997 Housemarque Inc.
- *
- * This file is part of the MIDAS Sound System, and may only be
- * used, modified and distributed under the terms of the MIDAS
- * Sound System license, LICENSE.TXT. By continuing to use,
- * modify or distribute this file you indicate that you have
- * read the license and understand and accept it fully.
- */
-
- #ifndef __MIXSD_H
- #define __MIXSD_H
-
-
- #include "dma.h"
-
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
-
- extern unsigned GLOBALVAR dmaBufferSize;
- extern dmaBuffer GLOBALVAR buffer;
- extern unsigned GLOBALVAR dmaPos;
-
-
- /****************************************************************************\
- *
- * Function: int mixsdInit(unsigned mixRate, unsigned mode,
- * unsigned dmaChNum)
- *
- * Description: Common initialization for all mixing Sound Devices.
- * Initializes DMA functions, DSM, start DMA playback and
- * allocates memory for possible post-processing tables
- *
- * Input: unsigned mixRate mixing rate in Hz
- * unsigned mode output mode
- * int dmaChNum DMA channel number / -1
- *
- * Returns: MIDAS error code
- *
- \****************************************************************************/
-
- int CALLING mixsdInit(unsigned mixRate, unsigned mode, int dmaChNum);
-
-
-
-
- /****************************************************************************\
- *
- * Function: int CALLING mixsdClose(void)
- *
- * Description: Common uninitialization code for all mixing Sound Devices.
- * Uninitializes DMA playback and DSM and deallocates memory.
- *
- * Returns: MIDAS error code
- *
- \****************************************************************************/
-
- int CALLING mixsdClose(void);
-
-
-
-
- /****************************************************************************\
- *
- * Function: int mixsdGetMode(unsigned *mode)
- *
- * Description: Reads the current output mode
- *
- * Input: unsigned *mode pointer to output mode
- *
- * Returns: MIDAS error code. Output mode is written to *mode.
- *
- \****************************************************************************/
-
- int CALLING mixsdGetMode(unsigned *mode);
-
-
-
- /****************************************************************************\
- *
- * Function: int mixsdOpenChannels(unsigned channels)
- *
- * Description: Opens sound channels for output. Prepares post-processing
- * tables, takes care of default amplification and finally opens
- * DSM channels. Channels can be closed by simply calling
- * dsmCloseChannels().
- *
- * Input: unsigned channels number of channels to open
- *
- * Returns: MIDAS error code
- *
- \****************************************************************************/
-
- int CALLING mixsdOpenChannels(unsigned channels);
-
-
-
-
- /****************************************************************************\
- *
- * Function: int mixsdSetAmplification(unsigned amplification)
- *
- * Description: Sets the amplification level. Calculates new post-processing
- * tables and calls dsmSetAmplification() as necessary.
- *
- * Input: unsigned amplification amplification value
- *
- * Returns: MIDAS error code
- *
- \****************************************************************************/
-
- int CALLING mixsdSetAmplification(unsigned amplification);
-
-
-
-
- /****************************************************************************\
- *
- * Function: int mixsdGetAmplification(unsigned *amplification);
- *
- * Description: Reads the current amplification level. (DSM doesn't
- * necessarily know the actual amplification level if
- * post-processing takes care of amplification)
- *
- * Input: unsigned *amplification pointer to amplification level
- *
- * Returns: MIDAS error code. Amplification level is written to
- * *amplification.
- *
- \****************************************************************************/
-
- int CALLING mixsdGetAmplification(unsigned *amplification);
-
-
-
-
- /****************************************************************************\
- *
- * Function: int mixsdSetUpdRate(unsigned updRate);
- *
- * Description: Sets the channel value update rate (depends on song tempo)
- *
- * Input: unsigned updRate update rate in 100*Hz (eg. 50Hz
- * becomes 5000).
- *
- * Returns: MIDAS error code
- *
- \****************************************************************************/
-
- int CALLING mixsdSetUpdRate(unsigned updRate);
-
-
-
-
- /****************************************************************************\
- *
- * Function: int mixsdStartPlay(void)
- *
- * Description: Prepares for playing - reads DMA playing position. Called
- * once before the Sound Device and music player polling loop.
- *
- * Returns: MIDAS error code
- *
- \****************************************************************************/
-
- int CALLING mixsdStartPlay(void);
-
-
-
-
- /****************************************************************************\
- *
- * Function: int mixsdPlay(int *callMP);
- *
- * Description: Plays the sound - mixes the correct amount of data with DSM
- * and copies it to DMA buffer with post-processing.
- *
- * Input: int *callMP pointer to music player calling flag
- *
- * Returns: MIDAS error code. If enough data was mixed for one updating
- * round and music player should be called, 1 is written to
- * *callMP, otherwise 0 is written there. Note that if music
- * player can be called, mixsdPlay() should be called again
- * with a new check for music playing to ensure the DMA buffer
- * gets filled with new data.
- *
- \****************************************************************************/
-
- int CALLING mixsdPlay(int *callMP);
-
-
-
- #ifdef __cplusplus
- }
- #endif
-
-
-
-
-
- /****************************************************************************\
- * enum mixsdFunctIDs
- * ------------------
- * Description: ID numbers for mixing Sound Device common functions
- \****************************************************************************/
-
- enum mixsdFunctIDs
- {
- ID_mixsdInit = ID_mixsd,
- ID_mixsdClose,
- ID_mixsdGetMode,
- ID_mixsdOpenChannels,
- ID_mixsdSetAmplification,
- ID_mixsdGetAmplification,
- ID_mixsdSetUpdRate,
- ID_mixsdStartPlay,
- ID_mixsdPlay
- };
-
-
-
- #endif
-
-
- /*
- * $Log: mixsd.h,v $
- * Revision 1.2 1997/01/16 18:41:59 pekangas
- * Changed copyright messages to Housemarque
- *
- * Revision 1.1 1996/05/22 20:49:33 pekangas
- * Initial revision
- *
- */